/* 
 * File:   SymbolTableRecord.h
 * Author: Kamil Chaber
 *
 */

#ifndef SYMBOLTABLERECORD_H
#define	SYMBOLTABLERECORD_H

#include <iostream>
#include <stdlib.h>
#include <string>
#include <sstream>

#include "../parser.h"
#include "../enumdeclarations.h"

using namespace std;

class SymbolTableRecord {
public:
    SymbolTableElementType type; 
    string lexem;
    string address;
    
    //variables
    VariableValueType varValueType;

    SymbolTableRecord(string lexem);
    SymbolTableRecord(string lexem, SymbolTableElementType type);
    
    bool isIntType();
    bool isRealType();
    int getOrderNumOfTempVariable();
    
    /**
     * Overrloaded equals operator - used in vector searching 
     * @param other
     * @return 
     */
    bool operator ==(const SymbolTableRecord& other);
    
    string toString();
    virtual ~SymbolTableRecord();
};

#endif	/* SYMBOLTABLERECORD_H */

